package com.itheima.mapper;

import com.github.pagehelper.Page;
import com.itheima.domain.Member;
import com.itheima.domain.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    User findByUsername(String username);

    void editPassword(@Param("password") String password, @Param("telephone") String telephone);

    List<User> findAll();

    //分页查询
    Page<User> selectByCondition(Map<String,String> map);

    //新增用户
    void add(User user);

    //设置用户和角色的关联关系
    void setUserAndRole(Map<String, Integer> map);

    //根据用户Id查询用户
    User findById(Integer id);

    //根据用户Id查询角色Id
    List<Integer> findRoleIdsByUserId(Integer userId);

    //删除用户相关的角色中间表数据
    void deleteRole(Integer id);

    //删除用户
    void delete(Integer id);

    //修改用户
    void edit(User user);

    //根据用户id查询关联数据的数量
    Integer findCountByUserId(Integer userId);

    //获取所有的用户排除自己
    List<User> findUsersExOwn(Integer id);
}
